
function return1(num ) {
	var target = {}

	target['key_'+num] = (Math.random()+ '').slice(-5)


	if(num == 1) {
		return target
	} else {
		return  Object.assign( arguments.callee(--num), target)
	}
}

// console.log(return1(5))


/**
 * 递归，可以没有返回值 直接通过参数传递递归的数据 见 return3
 * @param  {[type]} num [description]
 * @param  {[type]} obj [description]
 * @return {[type]}     [description]
 */
function return2(num, obj) {

	obj['key_'+num] = (Math.random()+ '').slice(-5)

	if(num == 1) {
		// console.log(arguments.callee.name+  ' 函数的递归入口')
		return obj
	} else {
		return  arguments.callee(--num, obj)
	}
}

// var obj = {}
// var ret = return2(5, obj)
// console.log(ret === obj, ret)
// console.log(obj)


function return3(num, obj) {

	obj['key_'+num] = (Math.random()+ '').slice(-5)

	if(num == 1) {
		console.log(arguments.callee.name+  ' 函数的递归入口')
	} else {
		arguments.callee(--num, obj)
	}
}
var obj = {}
return3(5, obj)
console.log(obj)
